\section{Completeness and Optimality}
  \subsection{Breadth First Search}
\begin{itemize}
  \item \textbf{Complete} because BFS expand node level-by-level in the tree, so the shallowest goal is at depth d, BFS will expand it when expending node of depth d.
  \item \textbf{Optimal} if all the steps cost are equals.
\end{itemize}

  \subsection{Uniform-cost search}
\begin{itemize}
  \item \textbf{Complete} 
  \item \textbf{Optimal}
\end{itemize}

If all the cost are positive, then the cost of the path can only grows, this ensure completeness and also optimality.

  \subsection{Depth-first search}
\begin{itemize}
  \item \textbf{Non complete} (can be complete if duplicate-checking is implemented in a finite graph) 
  \item \textbf{Non optimal} because these algorithm explore some deep nodes before shallow ones so it can found a deeper goal node than the shallowest goal node.
\end{itemize}

  \subsection{Depth-limited search}
\begin{itemize}
  \item \textbf{Non Complete} (can be complete if the limited depth is lesser than the depth of the shallowest goal node)
  \item \textbf{Non Optimal} see DFS
\end{itemize}

  \subsection{Iterative deepening DFS}
\begin{itemize}
  \item \textbf{Complete} Because there will be an iteration where the depth limit will become greater than the depth of the shallowest goal node.
  \item \textbf{Optimal} if all the steps cost are equals.
\end{itemize}

  \subsection{A*}
\begin{itemize}
  \item \textbf{Complete} if the heuristic is admissible 
  \item \textbf{Optimal} if the heuristic is consistent
\end{itemize}

